⬅ Back to Menu

What is Publication Bias?

Addressing Publication Bias in Meta-Analyses

In meta-analyses, we can apply techniques to partially mitigate the risk of distortions caused by publication and reporting bias. Some of these strategies focus on improving the study search process, while others involve statistical adjustments.

  1. Study Search - Several specific approaches can help minimize the risk of bias:

    • Include Grey Literature: such as dissertations, preprints, government reports, and conference proceedings;

    • Backward and Forward Snowballing: Review the references of included studies (backward snowballing) and identify papers that have cited those studies (forward snowballing).

    • Search in Multiple Databases

    • Comprehensive Search Strategies

    • Contacting Study Authors for Unpublished Data

  2. Statistical methods: Statistical methods can help detect signs of publication bias by analyzing patterns in the data, such as asymmetry in funnel plots or a correlation between study size and effect size. While these methods cannot directly confirm publication bias, they highlight its possible presence. Some techniques also adjust for potential bias, providing corrected estimates of the overall effect size to improve the reliability of the meta-analysis


The Small-Study Effects Concept

  1. Large Studies: Because they require significant resources, large studies are almost always published, regardless of their results.
  2. Moderate-Sized Studies: These are at some risk of not being published, especially if their results are non-significant. However, moderate statistical power often allows significant findings, increasing their chances of publication.
  3. Small Studies: These are most vulnerable to publication bias. Only small studies showing very large (and often exaggerated) effects tend to be published, while those with non-significant results remain unpublished (“file drawer problem”).

The reasoning is straightforward: Publication bias exists because SIGNIFICANT RESULTS are more likely to be published. Since LARGER studies have a HIGHER probability of producing significant results due to their larger sample sizes, publication bias disproportionately affects SMALL STUDIES, leading to an overrepresentation of large effect sizes in the published literature.

Studies with small sample sizes ➞ Low precision (high standard errors) ➞ Wider confidence intervals ➞ Greater likelihood of non-significant results.

This is precisely why methods for assessing publication bias focus on the issue of small-study effects. As the name suggests, these approaches are particularly concerned with the unique challenges posed by small studies.


Methods for Assessing Publication Bias - Small-Study Effects Methods


Summary

  1. Funnel Plot and Contour-Enhanced Funnel Plot - QUALITATIVE way to inspect asymmetry.
  2. Regression Tests - QUANTITATIVE way to assess asymmetry.

Funnel Plot

It is common practice to assess small-study effects using funnel plots. A funnel plot is a scatter plot that displays:

  1. X-axis: the observed effect sizes of studies;
  2. Y-axis: the standard error or precision (1/se) of the observed effect sizes of studies. Typically, the y-axis is inverted in funnel plots, so higher positions on the plot correspond to lower standard errors, indicating more precise estimates.
  3. The vertical line in the middle of the funnel: represents the pooled effect estimate (either in random-effects or fixed-effects models).
  4. The plot also includes the idealized funnel shape that represents the expected distribution of studies in the absence of bias.

Take a look at the example below:

In the absence of small-study effects (no publication bias), the studies should approximately follow the idealized funnel shape displayed in the plot. Is this true in our example? Subjectively, we can say that the studies do follow the shape reasonably well.

  • Studies located in the top part of the plot have low SE and should lie closely together, and not far away from the pooled effect size.

  • Studies located in the lower part of the plot, with increasing SE, the funnel “opens up”, and effect sizes are expected to scatter more heavily to the left and right of the pooled effect.

In this example there are 2 small studies with very low effect sizes to “balance out” the one with very high effects.


Now, let’s explore an example of funnel plot asymmetry:

In this case, the studies deviate from the idealized symmetrical funnel shape, suggesting the presence of small-study effects or potential publication bias.

  • There are three small studies with very high effect sizes located in the bottom-right corner of the plot (‘Shapiro’, ‘Kang’, and ‘Danitz-Orsillo’).

  • However, there are no corresponding small studies in the bottom-left corner of the plot with low or negative effect sizes to “balance out” these high-effect studies.

  • This imbalance contributes to the asymmetry in the funnel plot and may indicate the presence of small-study effects or publication bias.

  • Another concerning observation is that the study with the greatest precision in our sample, conducted by de ‘Vibe’, does not align well with the expected funnel pattern. Its effect size is noticeably smaller than anticipated for a study with such high precision.

Overall, the dataset exhibits an asymmetrical pattern in the funnel plot, which could suggest publication bias. It is possible that the three small studies with high effect sizes represent outliers that happened to achieve significant results, while a hidden pool of unpublished studies with similar standard errors but smaller, non-significant effects remains unaccounted for. This imbalance highlights the potential for selective reporting to skew the overall findings.


Contour-Enhanced Funnel Plot

A good way to inspect how asymmetry patterns relate to statistical significance is to generate contour-enhanced funnel plots (Peterset al., 2008). Such plots can help to distinguish publication bias from other forms of asymmetry.

Usually, the statistical significance thresholds are 0.95 and 0.99, which equals p < 0.05 and p < 0.01, respectively. We see that the funnel plot now contains three shaded regions. We are particularly interested in the p ≥ 0.05, p < 0.05, and p < 0.01 regions.

In the funnel plot, the standard error of the treatment estimates is plotted on the y-axis by default which is likely to be the best choice (Example A). However, we also can plot on the y-axis the 1/SE (precision), as demonstrated in Example B.


Example of funnel plot asymmetry PROBABLY due to PUBLICATION BIAS:

Studies appear to be MISSING in areas of statistical NON-SIGNIFICANT or SIGNIFICANT NEGATIVE/LOWER effect (flattened in orange) Increase the possibility of that the asymmetry is due to publication bias.

See the example below:

The green ellipse indicates likely areas where ‘‘missing’’ studies are expected.
The green ellipse indicates likely areas where ‘‘missing’’ studies are expected.

Example of funnel plot asymmetry PROBABLY due to OTHER SOURCES:

Studies appear to be MISSING in areas of HIGHER STATISTICAL SIGNIFICANCE (flattened in pink) Reduces the plausibility that publication bias.

See the example below:

Look after other sources of ‘begin’ funnel plot asymmetry:

  • Between-study heterogeneity;

  • Study procedures were different in small studies;

  • High risk-of-bias - Low quality studies;

  • Random (by chance).


Creating a Funnel Plot

We will now make this more concrete by generating a funnel plot our selves. In the meta package, the funnel() function can be used to print a funnel plot for a meta-analysis object. Here, we produce a funnel plot for our metabin() meta-analysis object.

Load Packages

library(meta)
library(readxl)

Importing the Dataset

##                   Author Year event.e   n.e event.c  n.c  p2y12_type
## 1  Almendro-Delia et al. 2015     188  3973     116 2076 Clopidogrel
## 2         ATLANTIC Trial 2014      30   906      19  952  Ticagrelor
## 3         Danchin et al. 2018       9   360      18  360 Clopidogrel
## 4          Load&Go Trial 2013       2    56       0   56 Clopidogrel
## 5           CIPAMI Trial 2012       1   164       4  171 Clopidogrel
## 6          Fabris et al. 2022      17   237      17  300 Clopidogrel
## 7          Postma et al. 2014      46  1345      35 1096 Clopidogrel
## 8          Dorler et al. 2011      55  1635     110 1076 Clopidogrel
## 9            Lupi et al. 2016       5   143      13  143  Ticagrelor
## 10        Redfors et al. 2019    1960 37840     528 6964 Clopidogrel
## 11           Yudi et al. 2018      25   892      96 1915 Clopidogrel
## 12      Alexander et al. 2008      12  1029      55 2756  Ticagrelor
## 13          Fefer et al. 2009      12   217       6  166 Clopidogrel
## 14            Lev et al. 2008       1   165       2  127 Clopidogrel
##      overal_risk_of_bias pretreatment _timing %_HTN
## 1   Serious-risk of Bias         Pre-hospital  30.0
## 2       Low-risk of Bias         Pre-hospital  28.8
## 3       Low-risk of Bias         Pre-hospital  25.9
## 4  Moderate-risk of Bias         Pre-hospital  52.3
## 5       Low-risk of Bias         Pre-hospital  49.8
## 6  Moderate-risk of Bias         Pre-hospital  30.5
## 7   Serious-risk of Bias         Pre-hospital  20.3
## 8  Moderate-risk of Bias         Pre-hospital  40.1
## 9   Serious-risk of Bias         Pre-hospital  60.6
## 10 Moderate-risk of Bias         Pre-hospital  40.5
## 11 Moderate-risk of Bias         Pre-hospital  43.4
## 12  Serious-risk of Bias          In-hospital  61.4
## 13  Serious-risk of Bias          In-hospital  32.6
## 14  Serious-risk of Bias          In-hospital  70.1

Performing the Meta-Analysis

m.acm <- metabin(event.e, n.e, event.c, n.c,
                 data = ma$acm,
                 method = "MH",
                 method.tau = "DL",
                 sm = "RR",
                 studlab = Author)

summary(m.acm)
##                           RR             95%-CI %W(common) %W(random)
## Almendro-Delia et al. 0.8469 [0.6761;   1.0608]       11.0       13.0
## ATLANTIC Trial        1.6591 [0.9407;   2.9262]        1.3        8.3
## Danchin et al.        0.5000 [0.2277;   1.0981]        1.3        5.9
## Load&Go Trial         5.0000 [0.2455; 101.8321]        0.0        0.6
## CIPAMI Trial          0.2607 [0.0294;   2.3078]        0.3        1.2
## Fabris et al.         1.2658 [0.6606;   2.4255]        1.1        7.3
## Postma et al.         1.0710 [0.6951;   1.6502]        2.8       10.1
## Dorler et al.         0.3291 [0.2403;   0.4506]        9.6       11.8
## Lupi et al.           0.3846 [0.1408;   1.0508]        0.9        4.3
## Redfors et al.        0.6832 [0.6227;   0.7495]       64.4       14.2
## Yudi et al.           0.5591 [0.3626;   0.8619]        4.4       10.1
## Alexander et al.      0.5844 [0.3142;   1.0867]        2.2        7.6
## Fefer et al.          1.5300 [0.5864;   3.9914]        0.5        4.6
## Lev et al.            0.3848 [0.0353;   4.1970]        0.2        1.0
## 
## Number of studies: k = 14
## Number of observations: o = 67120 (o.e = 48962, o.c = 18158)
## Number of events: e = 3382
## 
##                          RR           95%-CI     z  p-value
## Common effect model  0.6887 [0.6380; 0.7433] -9.57 < 0.0001
## Random effects model 0.7274 [0.5673; 0.9327] -2.51   0.0121
## 
## Quantifying heterogeneity:
##  tau^2 = 0.1108; tau = 0.3328; I^2 = 73.7% [55.4%; 84.5%]; H = 1.95 [1.50; 2.54]
## 
## Test of heterogeneity:
##      Q d.f.  p-value
##  49.46   13 < 0.0001
## 
## Details on meta-analytical method:
## - Mantel-Haenszel method (common effect model)
## - Inverse variance method (random effects model)
## - DerSimonian-Laird estimator for tau^2
## - Mantel-Haenszel estimator used in calculation of Q and tau^2 (like RevMan 5)
## - Continuity correction of 0.5 in studies with zero cell frequencies

Creating the Funnel Plot

Classic Funnel Plot
funnel(m.acm,
       studlab = TRUE, 
       bg = "lightblue", 
       cex = 2,
       cex.studlab = 1,
       random = T,
       fixed = F)

title("Funnel Plot for All-Cause Mortality")


Contour-Enhanced Funnel Plot
# Define fill colors for contour

funnel(m.acm,
       studlab = TRUE, 
       bg = "lightblue", 
       cex = 2,
       cex.studlab = 1,
       random = T,
       fixed = F,
       contour = c(0.95, 0.99))

legend(x = 5.2, y = 0.01,
       legend = c("p ≥ 0.05", "p < 0.05", "p < 0.01"),
       fill = c("white" , "#808080", "#E6E6E6"))

title("Contour-Enhanced Funnel Plot for All-Cause Mortality")


Tests for Asymmetry Detection in the Funnel Plots

Tests for funnel plot asymmetry evaluate whether there is a systematic relationship between intervention effects and study size beyond what would occur by chance, indicating potential small-study effects.

While visual inspection of contour-enhanced funnel plots can highlight “red flags” for publication bias, such as asymmetry, this approach is subjective and lacks explicit rules for defining “too asymmetric.”

Quantitative tests provide a more objective assessment, complementing visual interpretation.


General Recommendations for Applying Tests for Asymmetry Detection

  • Tests for funnel plot asymmetry should only be used when a meta-analysis includes at least 10 studies, as fewer studies lack sufficient power to distinguish random variation from true asymmetry.

  • These tests are also inappropriate when all studies are of similar sizes (i.e., similar standard errors), as this limits their ability to detect asymmetry.

  • When small-study effects are identified, publication bias should be considered one of several possible explanations. While funnel plots and asymmetry tests highlight potential issues, they do not offer solutions.

  • Review authors should note that these tests have low power, so a lack of evidence for asymmetry does not rule out the presence of bias, including publication bias.


Which method to choose?

Scenarios Methods R Syntax
Mean Differences Egger 1997 "Egger"
Odds Ratios Harbord 2006 or Peters 2006 "Harbord" | "Peters"

Risk Ratios

Risk Differences

Egger 1997 or Peters 2006 "Egger" | "Peters"
Standardized Mean Differences Pustejovsky & Rodgers 2019 "Pustejovsky"
Meta-analysis of diagnostic test accuracy studies Deeks 2005 "Deeks"

How to perform the tests for asymmetry detection

To perform the meta-analysis of continuous outcome data we will use the metabias() function from the meta package. We need to provide some instructions for the metabias() function.

metabias(m.acm,
         method.bias = "Egger",
         plotit = T)

## Linear regression test of funnel plot asymmetry
## 
## Test result: t = 0.34, df = 12, p-value = 0.7363
## Bias estimate: 0.2498 (SE = 0.7246)
## 
## Details:
## - multiplicative residual heterogeneity variance (tau^2 = 4.0812)
## - predictor: standard error
## - weight:    inverse variance
## - reference: Egger et al. (1997), BMJ

References:

  1. Peters JL, Sutton AJ, Jones DR, Abrams KR, Rushton L. Contour-enhanced meta-analysis funnel plots help distinguish publication bias from other causes of asymmetry. J Clin Epidemiol. 2008;61(10):991-6.